public class Student {
    public String name;//实例成员变量（非静态成员变量）
    public int age;

    public static String classroom = "111";


    static {//静态代码块
        classroom = "304";
        //this.age = 100;//err，静态代码块不依赖对象
        System.out.println("static1{}……");
    }

    static {//静态代码块
        System.out.println("static2{}……");
    }//多个静态代码块的执行顺序与定义顺序有关系，先定义先执行


    public Student(String name, int age) {//带参构造方法
        this.name = name;
        this.age = age;
        System.out.println("此构造方法被调用了……");
    }


    {//构造代码块，主要用来初始化 非静态数据成员
        this.age = 100;
        //classroom = "234";也可以用来初始化静态成员
        System.out.println("构造代码块");
    }//先执行构造代码块，再执行构造方法


    public void show() {
        System.out.println("姓名：" + this.name + " 年龄："
                + this.age);
    }


//    public String toString() {//动态绑定
//        //return "qiuzhu";
//        return "11姓名：" + this.name + " 年龄："
//                + this.age;
//    }

    @Override//注解
    public String toString() {//Alt+Fn+insert -> toString()
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
